import { NgModule } from '@angular/core';
import { RouteReuseStrategy } from '@angular/router';

import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { FileChooser } from '@ionic-native/file-chooser/ngx';
import { Geolocation } from '@ionic-native/geolocation/ngx';
import { GaoDeLocation } from '@ionic-native/gao-de-location/ngx';
import { Stepcounter } from '@ionic-native/stepcounter/ngx';
import { Camera, CameraOptions } from '@ionic-native/camera/ngx';
import { MediaCapture, MediaFile, CaptureError, CaptureImageOptions } from '@ionic-native/media-capture/ngx';
import { SQLite, SQLiteObject } from '@ionic-native/sqlite/ngx';
import { Utils } from './utils'
import { FileTransfer, FileUploadOptions, FileTransferObject } from '@ionic-native/file-transfer/ngx';
import { File } from '@ionic-native/file/ngx';
import { FilePath } from '@ionic-native/file-path/ngx';
import { Base64 } from '@ionic-native/base64/ngx';
import { Httputils } from './httputiles';
import { HttpClientModule } from '@angular/common/http';
import { Calendar } from '@ionic-native/calendar/ngx';
import { CalendarModule } from 'ion2-calendar';
import { FileOpener } from '@ionic-native/file-opener/ngx';
import { LocalNotifications } from '@ionic-native/local-notifications/ngx';
import { Vibration } from '@ionic-native/vibration/ngx';
import { BackgroundMode } from '@ionic-native/background-mode/ngx';
import { NgxIonicImageViewerModule } from 'ngx-ionic-image-viewer';
import { MyFilterPipe } from '../app/listfilter/listfilter.page';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { PhotoViewer } from '@ionic-native/photo-viewer/ngx';
import { AppAvailability } from '@ionic-native/app-availability/ngx';
import { WebSocketService } from './socket';
import { BrowserModule, HAMMER_GESTURE_CONFIG, HammerGestureConfig } from '@angular/platform-browser';
import { MyHammerConfig } from './myHammer.config'
import { QRScanner, QRScannerStatus } from '@ionic-native/qr-scanner/ngx';
import { DataService } from './data.service';
import { Events } from './events'
import { Clipboard } from '@ionic-native/clipboard/ngx';

@NgModule({
  declarations: [AppComponent],
  entryComponents: [],
  imports: [BrowserModule, IonicModule.forRoot(), NgxIonicImageViewerModule, FormsModule, ReactiveFormsModule, AppRoutingModule, HttpClientModule, CalendarModule,],
  providers: [
    StatusBar, Stepcounter, SQLite, BackgroundMode, PhotoViewer, Events, WebSocketService,
    SplashScreen, FileChooser, Geolocation, GaoDeLocation, Camera, MediaCapture, Vibration, AppAvailability, QRScanner, DataService,
    Utils, FileTransfer, File, FileTransferObject, FilePath, Base64, Httputils, Calendar, FileOpener, LocalNotifications, Clipboard,
    { provide: HAMMER_GESTURE_CONFIG, useClass: MyHammerConfig }
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }
